package com.yc.snacknet_vue.biz.Impl;

import java.util.Collections;
import java.util.List;
import java.util.Map;

import com.yc.snacknet_vue.bean.CartInfo;
import com.yc.snacknet_vue.biz.ICartInfoBiz;
import com.yc.snacknet_vue.dao.ICartInfoDAO;
import com.yc.snacknet_vue.dao.impl.CartInfoDAOImpl;
import com.yc.snacknet_vue.utils.StringUtil;

import javafx.print.Collation;;
/**
 * 购物车 业务层 实现
 * @author UNO
 * @date 2021年8月10日
 * Email 2759451734@qq.com
 */
public class CartInfoBizImpl implements ICartInfoBiz {


	/**
	 * 查询 某个会员的购物车信息
	 * @param mno
	 * @return
	 */
	@Override
	public List<CartInfo> finds(String mno) {
		if( StringUtil.checkNull(mno)) {
			return null;
		}
		ICartInfoDAO dao = new CartInfoDAOImpl();
		return dao.finds(mno);
	}

	/**
	 * 这个只查询当前用不了的购物车编号和商品编号
	 * @param mno
	 * @return
	 */
	@Override
	public List<Map<String, Object>> info(String mno) {
		if( StringUtil.checkNull(mno)) {
			return null;
		}
		ICartInfoDAO dao = new CartInfoDAOImpl();
		return dao.info(mno);
	}

	/**
	 * 修改购物车中商品数量
	 * @param cno
	 * @param num
	 * @return
	 */
	@Override
	public int update(int num, String cno) {
		if( StringUtil.checkNull(cno)) {
			return -1;
		}
		ICartInfoDAO dao = new CartInfoDAOImpl();
		return dao.update(num, cno);
	}

	/**
	 * 添加购物车信息
	 * @param cf
	 * @return
	 */
	@Override
	public int add(CartInfo cf) {
		if(null == cf || StringUtil.checkNull(cf.getCno())) {
			return -1;
		}
		ICartInfoDAO dao = new CartInfoDAOImpl();
		return dao.add(cf);
	}

	/**
	 * 删除指定多个购物车编号的购物信息
	 * @param cnos
	 * @return
	 */
	@Override
	public int deletes(String cnos) {
		if( StringUtil.checkNull(cnos)) {
			return -1;
		}
		ICartInfoDAO dao = new CartInfoDAOImpl();
		if( cnos.contains(",") || cnos.contains(";")) {
			String[] strs = cnos.split(",").length > 1 ? cnos.split(",") : cnos.split(";");
			return dao.deletes(strs);  //删除多条购物车
		}
		return dao.delete(cnos);  //删除单条数据
	}

	/**
	 * 查询指定购物车编号数组的购物车信息
	 * @param cnos
	 * @return
	 */
	@Override
	public List<CartInfo> findByCno(String cnos) {
		if( StringUtil.checkNull(cnos)) {
			return Collections.emptyList();  //不可以add的集合
		}
		ICartInfoDAO dao = new CartInfoDAOImpl();
		if( cnos.contains(",") || cnos.contains(";")) {
			String[] strs = cnos.split(",").length > 1 ? cnos.split(",") : cnos.split(";");
			return dao.findByCno(strs);  //删除多条购物车
		}
		return dao.findByCno(new String[] {cnos});  //删除单条数据
	}

}
